import 'package:flutter/material.dart';

class LimitedBox_Offstage_OverflowBox_SizedBox extends StatelessWidget{
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new Scaffold(
      body: new Center(
        /*
        LimitedBox: Key key,
                    this.maxWidth = double.infinity,  首先受到子控件的影响，然后再受父控件影响，maxHeight同理
                    this.maxHeight = double.infinity,
                    Widget child,

        、Offstage  Key key  通过一个参数，来控制child是否显示
                  , this.offstage = true true 不显示 false显示
                  , Widget child

                    1、当offstage为true，当前控件不会被绘制在屏幕上，不会响应点击事件，也不会占用空间；
                    2、当offstage为false，当前控件则跟平常用的控件一样渲染绘制；
                    3、另外，当Offstage不可见的时候，如果child有动画，应该手动停掉，Offstage并不会停掉动画。


        、OverflowBox   Key key,
                        this.alignment = Alignment.center,
                        this.minWidth,
                        this.maxWidth,
                        this.minHeight,
                        this.maxHeight,
                        Widget child,
        、SizedBox   1、child不为null时，如果设置了宽高，则会强制把child尺寸调到此宽高；如果没有设置宽高，则会根据child尺寸进行调整；
                     2、child为null时，如果设置了宽高，则自身尺寸调整到此宽高值，如果没设置，则尺寸为0；
        * */
          child:

//          new SizedBox(
//            height: 200,
//            width: double.infinity,
//            child: new Container(
////              alignment: Alignment.center,
//              color: Colors.blue,
//              child: new Text(
//                  "SizedBox",
//
//              ),
//            ),
//          )
          
          Container(
            color: Colors.green,
            alignment: Alignment.topRight,
            width: 200.0,
            height: 200.0,
            padding: EdgeInsets.all(5.0),
            child: SizedOverflowBox(
              size: Size(100.0, 200.0),
              child: Container(color: Colors.red, width: 200.0, height: 100.0,),
            ),
          ),
//            new Container(
//            color: Colors.blue,
//            width: double.infinity,
//            height: 150,
//            child: new OverflowBox(
//              alignment: Alignment.topCenter,
//              minWidth: 200,
//              minHeight: 200,
//              maxHeight: 200,
//              maxWidth: 200,
//
//              child: new Container(
//                margin: EdgeInsets.fromLTRB(0,0, 0, 0),
//                color: Colors.amber,
//                height: 100,
//                child: new Text(
//                  "OverflowBox",
//                  overflow: TextOverflow.clip,
//                ),
//              ),
//            ),
//          ),


//            new Offstage(
//
//            )


//          new LimitedBox(
//            maxWidth: double.infinity,
//            maxHeight: 50,
//            child: new Container(
//              width: double.infinity,
//              color: Colors.blue,
//              child: new Text("LimitedBox"),
//            ),
//          )
      ),
    );
  }

}